package com.ruoyi.merchant.shop.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.merchant.area.domain.Area;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 店铺信息对象 shop
 * 
 * @author zzr
 * @date 2025-09-14
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Shop extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 店铺ID，主键 */
    private Integer id;

    /** 店铺名称 */
    @Excel(name = "店铺名称")
    private String name;

    /** 经营区域 */
    @Excel(name = "经营区域")
    private String operatingArea;

    /** 注册时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "注册时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date regTime;

    /** 开始营业时间 */
    @JsonFormat(pattern = "HH:mm:ss")
    @Excel(name = "开始营业时间", width = 30, dateFormat = "HH:mm:ss")
    private Date startTime;

    /** 停止营业时间 */
    @JsonFormat(pattern = "HH:mm:ss")
    /*你真是有病，看看下面是什么，看看上面是什么*/
    @Excel(name = "停止营业时间", width = 30, dateFormat = "HH-mm-ss")
    private Date endTime;

    /** 店铺详细地址 */
    @Excel(name = "店铺详细地址")
    private String address;

    /** 经度坐标 */
    @Excel(name = "经度坐标")
    private String longitude;

    /** 纬度坐标 */
    @Excel(name = "纬度坐标")
    private String latitude;

    /** 店铺描述信息 */
    @Excel(name = "店铺描述信息")
    private String description;

    /** 店铺照片路径 */
    @Excel(name = "店铺照片路径")
    private String photo;

    /** 店铺评分，默认值0 */
    @Excel(name = "店铺评分，默认值0")
    private Integer rate;

    /** 所属行政区域 */
    @Excel(name = "所属行政区域")
    private Integer area;

    /** 经营状态（0：正常，1：放假） */
    @Excel(name = "经营状态", readConverterExp = "0=：正常，1：放假")
    private Integer status;

    /** 删除状态（0：未删除，1：已删除） */
    @Excel(name = "删除状态", readConverterExp = "0=：未删除，1：已删除")
    private Integer deleted;

    /** 审核状态 */
    @Excel(name = "审核状态",readConverterExp = "0=：待审核，1：审核通过，2：人工审核，3：审核失败")
    private Integer auditStatus;

    /** 外键信息*/
    private Area areaInfo;

    public void setId(Integer id)
    {
        this.id = id;
    }

    public Integer getId()
    {
        return id;
    }

    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }

    public void setOperatingArea(String operatingArea) 
    {
        this.operatingArea = operatingArea;
    }

    public String getOperatingArea() 
    {
        return operatingArea;
    }

    public void setRegTime(Date regTime) 
    {
        this.regTime = regTime;
    }

    public Date getRegTime() 
    {
        return regTime;
    }

    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }

    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }

    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }

    public void setLongitude(String longitude) 
    {
        this.longitude = longitude;
    }

    public String getLongitude() 
    {
        return longitude;
    }

    public void setLatitude(String latitude) 
    {
        this.latitude = latitude;
    }

    public String getLatitude() 
    {
        return latitude;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setPhoto(String photo) 
    {
        this.photo = photo;
    }

    public String getPhoto() 
    {
        return photo;
    }

    public void setRate(Integer rate)
    {
        this.rate = rate;
    }

    public Integer getRate()
    {
        return rate;
    }

    public void setArea(Integer area)
    {
        this.area = area;
    }

    public Integer getArea()
    {
        return area;
    }

    public void setStatus(Integer status)
    {
        this.status = status;
    }

    public Integer getStatus()
    {
        return status;
    }

    public void setDeleted(Integer deleted)
    {
        this.deleted = deleted;
    }

    public Integer getDeleted()
    {
        return deleted;
    }

    public void setAuditStatus(Integer auditStatus)
    {
        this.auditStatus = auditStatus;
    }

    public Integer getAuditStatus()
    {
        return auditStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("name", getName())
            .append("operatingArea", getOperatingArea())
            .append("regTime", getRegTime())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("address", getAddress())
            .append("longitude", getLongitude())
            .append("latitude", getLatitude())
            .append("description", getDescription())
            .append("photo", getPhoto())
            .append("rate", getRate())
            .append("area", getArea())
            .append("status", getStatus())
            .append("deleted", getDeleted())
            .append("auditStatus", getAuditStatus())
            .toString();
    }
}
